package com.dys.processcontrol.substructure;

/**
 * @className: com.dys.processcontrol.substructure.SwtchTest
 * @description: switch分支
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/06/18 下午10:45
 */
public class SwitchTest {

    public static void main(String[] args) {
        thingsYouDoEveryWeek();
    }

    /**
     * 【1】语法结构：
     * switch(){
     * case * :
     * case * :
     * case * :
     * ......
     * }
     * 【2】switch后面是一个(),()中表达式返回的结果是一个等值，这个等值的类型可以为：byte、short、chat、int、String、Enum
     * 【3】这个()中的等级会依次跟case后面的值进行比较，如果匹配成功，就执行: 后面的代码
     * 【4】为了防止代码的穿透效果：在每个分支后面加上一个关键字break,遇到break就代表这个分支结束了
     * 【5】类似与else分支的“兜底”，default
     * 【6】default分支可以写在任意的位置上，但是如果没有写在最后一行，必须加上break关键字。如果在最后一行，可以省略break关键字
     * 【7】相邻分支逻辑是一样的，那么就可以只保留最后一个分支，上面的都可以省略不写了。
     * 【8】switch分支和if分支的区别；
     * 表达式是等值判断-->用if、switch都可以
     * 如果表达式是区间判断-->用if最好
     * 【9】switch应用场景：等值判断的情况下，比如周一到周五干嘛，等值情况比较少的情况可以使用
     * 根据给出的学生分数，判断学生的等级
     */
    public static void testSwitch() {
        // 1.给出学生的成绩
        int score = 120;
        // 2.根据学生的成绩判断学生的等级
        switch (score / 10) {
            case 10:
                System.out.println("A");
                break;
            case 9:
                System.out.println("A");
                break;
            case 8:
                System.out.println("B");
                break;
            case 7:
                System.out.println("C");
                break;
            case 6:
                System.out.println("C");
                break;
            case 5:
                System.out.println("D");
                break;
            case 4:
                System.out.println("D");
                break;
            case 3:
                System.out.println("E");
                break;
            case 2:
                System.out.println("E");
                break;
            default:
                System.out.println("成绩错误");
                break;
            case 1:
                System.out.println("E");
                break;
        }
    }

    /**
     * 每周做什么事情
     */
    public static void thingsYouDoEveryWeek() {
        int dayOfWeek = 3;
        String day = "";
        switch (dayOfWeek) {
            case 1:
                day = "Sunday";
                System.out.println("周一学Java");
                break;
            case 2:
                day = "Monday";
                System.out.println("周二学前端");
                break;
            case 3:
                day = "Tuesday";
                System.out.println("周三学数据库");
                break;
            case 4:
                day = "Wednesday";
                System.out.println("周四学AI");
                break;
            case 5:
                day = "Thursday";
                System.out.println("周五做练习");
                break;
            case 6:
                day = "Friday";
                System.out.println("周六做项目");
                break;
            case 7:
                day = "Saturday";
                System.out.println("周天休息");
                break;
            default:
                System.out.println("输入的星期数不对");
        }
    }
}
